//package com.johnny.xia.redis.ranking;
//
//import java.util.concurrent.ExecutorService;
//import java.util.concurrent.Executors;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import redis.clients.jedis.Jedis;
//import redis.clients.jedis.JedisPool;
//import redis.clients.jedis.JedisPoolConfig;
//
///**
// * 往redis中写分数
// * 
// * @author PVer
// *
// */
//public class WriteRedisThreadPool{
//
//    private static final Logger logger = LoggerFactory.getLogger(WriteRedisThreadPool.class);
//
//    private static JedisPool pool = null;
//
//    /**
//     * 构建redis连接池
//     * 
//     * @param ip
//     * @param port
//     * @return JedisPool
//     */
//    public static JedisPool getPool(){
//        if (pool == null){
//            JedisPoolConfig config = new JedisPoolConfig();
//            //控制一个pool可分配多少个jedis实例，通过pool.getResource()来获取；
//            //如果赋值为-1，则表示不限制；如果pool已经分配了maxActive个jedis实例，则此时pool的状态为exhausted(耗尽)。
//            //            config.setMaxActive(500);
//            config.setMaxTotal(30000);
//            //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
//            config.setMaxIdle(5);
//            //表示当borrow(引入)一个jedis实例时，最大的等待时间，如果超过等待时间，则直接抛出JedisConnectionException；
//            //            config.setMaxWait(1000 * 100);
//            config.setMaxWaitMillis(1000 * 3);
//            //在borrow一个jedis实例时，是否提前进行validate操作；如果为true，则得到的jedis实例均是可用的；
//            config.setTestOnBorrow(true);
//            pool = new JedisPool(config, "127.0.0.1", 6379);
//        }
//        return pool;
//    }
//
//    public static Jedis getJedis() throws InterruptedException{
//        Thread.sleep(1000);
//        return getPool().getResource();
//    }
//
//    /**
//     * 返还到连接池
//     * 
//     * @param pool
//     * @param redis
//     */
//    public static void returnResource(JedisPool pool,Jedis redis){
//        if (redis != null){
//            pool.returnResource(redis);
//            //            pool.close();
//        }
//    }
//
//    public static void main(String[] args){
//        int count = 0;
//
//        final String key = "rank";
//
//        //        final Jedis jedis = new Jedis("127.0.0.1", 6379);
//        //        
//        //        jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin  
//        //        System.out.println(jedis.get("name"));//执行结果：xinxin  
//        //        
//        //        ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
//        ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
//        for (int i = 1000000; i < 2000000; i++){
//            final int index = i;
//            count++;
//            fixedThreadPool.execute(new Runnable(){
//                
//                @Override
//                public void run(){
//                    logger.info("----------------"+index);
//                    Jedis jedis = null;
//                    try{
//                        jedis = getJedis();
//                        jedis.zadd(key, index, String.valueOf(index));
//                    }catch (Exception e){
//                        logger.error("index :{} error", index, e);
//                        System.exit(1);
//                    }finally{
//                        if (jedis != null){
//                            returnResource(pool, jedis);
//                        }
//                    }
//                }
//            });
//
////            try{
////                Thread.sleep(1);
////            }catch (InterruptedException e){
////                // TODO Auto-generated catch block
////                e.printStackTrace();
////            }
////            if (i % 100 == 0){
////                logger.info(String.valueOf(i));
////            }
//            
////            logger.info("count:"+count);
//
//        }
//    }
//}
